
#ifndef __IOCP_UDP_SOCKET_H__
#define __IOCP_UDP_SOCKET_H__

#include "fileio.h"

#ifdef __cplusplus
extern "C" {
#endif

    HIOCPFILE udpio_new(HIOCPBASE hIocp, SOCKET hFile);
    void udpio_setcb(HIOCPFILE hObject, PFN_READPROC pfnReadProc,
        PFN_WRITEPROC pfnWriteProc, PFN_SIGNALPROC pfnSignalProc, void * pUserData);

    BOOL udpio_connect(HIOCPFILE hObject, SOCKADDR_IN * pRemote, PFN_CONNECTPROC pfnConnectProc);

    BOOL udpio_enable_read(HIOCPFILE hObject, BOOL bEnable);
    BOOL udpio_enable_write(HIOCPFILE hObject, BOOL bEnable);

    BOOL udpio_shutdown(HIOCPFILE hObject, int nHow);

    HIOCPFILE rawio_new(HIOCPBASE hIocp, SOCKET hFile);
    BOOL rawio_enable_read(HIOCPFILE hObject, BOOL bEnable);
    BOOL rawio_enable_write(HIOCPFILE hObject, BOOL bEnable);
#ifdef __cplusplus
};
#endif

#endif